<?php
	/*
	 ###############################################
	 ####										 ####
	 ####	Author : Harish Chauhan			####
	 ####	Date	 : 29 Sep,2004				 ####
	 ####	Updated: 21 Apr,2007				 ####
	 ####										 ####
	 ###############################################
	 */
	
	class DB {
	///Declaration of variables
	
	var $host = '';
	var $user = '';
	var $password = '';
	var $database = '';
	var $persistent = false;
	
	var $conn = null;
	var $result = false;
	var $fields;
	var $check_fields;
	var $tbname;
	var $addNewFlag = false;
	///End
	
	function DB($host = "", $user = "", $password = "", $dbname = "", $open = false) {
		if ($host != "")
		$this->host = $host;
		if ($user != "")
		$this->user = $user;
		if ($password != "")
		$this->password = $password;
		if ($dbname != "")
		$this->database = $dbname;
		
		if ($open)
		$this->open();
	}
	function open($host = "", $user = "", $password = "", $dbname = "")	{
		if ($host != "")
		$this->host = $host;
		if ($user != "")
		$this->user = $user;
		if ($password != "")
		$this->password = $password;
		if ($dbname != "")
		$this->database = $dbname;
		
		if ($this->connect() === false)
		return false;
		if ($this->select_db() === false)
		return false;
		return $this->conn;
	}
	function set_host($host, $user, $password, $dbname) {
		$this->host = $host;
		$this->user = $user;
		$this->password = $password;
		$this->database = $dbname;
	}
	function affectedRows()//-- Get number of affected rows in previous operation
	{
		return mysql_affected_rows($this->conn);
	}
	function close()//Close a connection to a	Server
	{
		return mysql_close($this->conn);
	}
	function connect()//Open a connection to a Server
	{
		if (is_resource($this->conn))
		return true;
		// Choose the appropriate connect function
		if ($this->persist)
		$this->conn = mysql_pconnect($this->host, $this->user, $this->password);
		else
		$this->conn = mysql_connect($this->host, $this->user, $this->password);
		
		// Connect to the database server
		if (!is_resource($this->conn))
		return false;
		else
		return true;
	}
	function select_db($dbname = "")//Select a databse
	{
		if ($dbname == "")
		$dbname = $this->database;
		return mysql_select_db($dbname, $this->conn);
	}
	function create_db($dbname = "")//Create a database
	{
		if ($dbname == "")
		$dbname = $this->database;
		return $this->query("CREATE DATABASE " . $dbname);
	}
	function drop_db($dbname = "")//Drop a database
	{
		if ($dbname == "")
		$dbname = $this->database;
		return $this->query("DROP DATABASE " . $dbname);
	}
	function error()//Get last error
	{
		return(mysql_error());
	}
	function errorno()//Get error number
	{
		return mysql_errno();
	}
	function query($sql = '')//Execute the sql query
	{
		
		$this->result = mysql_query($sql, $this->conn);
		
		
		
		return $this->result;
	}
	function numRows($result = null)//Return number of rows in selected table
	{
		if (!is_resource($result))
		$result = $this->result;
		return(mysql_num_rows($result));
	}
	function fieldName($field, $result = null) {
		if (!is_resource($result))
		$result = $this->result;
		return(mysql_field_name($result, $field));
	}
	function insertID() {
		return(mysql_insert_id($this->conn));
	}
	
	function data_seek($arg1, $row = 0)///Move internal result pointer
	{
		if (is_resource($arg1))
		$result = $arg1;
		else
		$result = $this->result;
		
		if (!is_resource($arg1) && !is_null($arg1))
		$row = $arg1;
		
		return mysql_data_seek($result, $row);
	}
	
	function fetchRow($result = null) {
		if (!is_resource($result))
		$result = $this->result;
		return(mysql_fetch_row($result));
	}
	
	function fetchObject($result = null) {
		if (!is_resource($result))
		$result = $this->result;
		return(mysql_fetch_object($result));
	}
	function fetchArray($arg1 = null, $mode = MYSQL_BOTH) {
		if (is_resource($arg1))
		$result = $arg1;
		else
		$result = $this->result;
		
		if (!is_resource($arg1) && !is_null($arg1))
		$mode = $arg1;
		
		return(mysql_fetch_array($result, $mode));
	}
	function fetchAssoc($result = null) {
		if (!is_resource($result))
		$result = $this->result;
		return mysql_fetch_assoc($result);
	}
	function freeResult($result = null) {
		if (!is_resource($result))
		$result = $this->result;
		return(mysql_free_result($result));
	}
	function getSingleResult($sql) {
		$result = $this->query($sql);
		$row = $this->fetchArray($result, MYSQL_NUM);
		$return = $row[0];
		return $return;
	}
	
	function addNew($table_name) {
		$this->fields = array();
		$this->addNewFlag = true;
		$this->tbname = $table_name;
	}
	
	function edit($table_name) {
		$this->fields = array();
		$this->check_fields = array();
		$this->addNewFlag = false;
		$this->tbname = $table_name;
	}
	
	function update() {
		foreach ($this->fields as $field_name => $value) {
		if ($value == '--DATE--')
			$qry .= $field_name . "=now(),";
		elseif (strtolower(trim($value)) == 'now()')
			$qry .= $field_name . "=now(),";
		else
			$qry .= $field_name . "='" . $value . "',";
		}
		$qry = substr($qry, 0, strlen($qry) - 1);
		
		if ($this->addNewFlag)
		$qry = "INSERT INTO " . $this->tbname . " SET " . $qry;
		else {
		$qry = "UPDATE " . $this->tbname . " SET " . $qry;
		if (count($this->check_fields) > 0 && is_array($this->check_fields)) {
			$qry .= " WHERE ";
			foreach ($this->check_fields as $field_name => $value)
			$qry .= $field_name . "='" . $value . "' AND ";
			$qry = substr($qry, 0, strlen($qry) - 5);
		} elseif (!empty($this->check_fields)) {
			$qry .= " WHERE " . $this->check_fields . " ";
		}
		}
		return $this->query($qry);
	}
	}
?>
